if host:isHost() then
    local mousePositionCentered = {X = 0, Y = 0}
    renderer:setOffsetCameraRot(0, 0, 0) -- Now renderer:getCameraOffsetRot() return a vector, not nil
    cameraRotationOffsetModifier = 0.25 -- Offset strength modifier

    function events.RENDER()
        -- This feature will work if chat or any container(inventory, chests, etc.) is open and window is focused
        if (host:isChatOpen() or host:isContainerOpen()) and client:isWindowFocused() then
            mousePositionCentered.X = client:getMousePos()[1] - client:getWindowSize()[1] / 2
            mousePositionCentered.Y = client:getMousePos()[2] - client:getWindowSize()[2] / 2
        else
            if mousePositionCentered ~= {X = 0, Y = 0} then mousePositionCentered = {X = 0, Y = 0} end
        end

        -- Set rotation offset via math.lerp() for soft rotation. P.S. There is no reason to divide on client:getFOV() here lol.
        renderer:setOffsetCameraRot(
            math.lerp(renderer:getCameraOffsetRot()[1], mousePositionCentered.Y / client:getFOV() * cameraRotationOffsetModifier, 0.125),
            math.lerp(renderer:getCameraOffsetRot()[2], mousePositionCentered.X / client:getFOV() * cameraRotationOffsetModifier, 0.125),
            0
        )
    end
end
